﻿using AntdUI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _9jCardRegisterCollection.Models
{
    public class DomesticAttendeeForTable : NotifyProperty
    {
        private string id;
        private string batchNo;
        private string name;
        private string birthDate;
        private string gender;
        private string registrationProvince;
        private string registrationCity;
        private string registrationAddress;
        private string currentResidenceProvince;
        private string currentResidenceCity;
        private string currentResidenceAddress;
        private string iDType;
        private string iDNumber;
        private string cardType;
        private string holderOfCertificateType;
        private string trafficArea;
        private string workUnit;
        private string telephone;
        private string remark;
        private string userDefine1;
        private string userDefine2;
        private string userDefine3;
        private string userDefine4;
        private string userDefine5;
        private string userDefine6;
        private string userDefine7;
        private string userDefine8;
        private string userDefine9;
        private string userDefine10; 
        private DomesticAttendeeForTable[] childTypes; 
        private CellLink[] cellLinks;
        private string createdBy;
        private DateTime? _createdat = DateTime.Now;
        private string _lastupdatedby;
        private DateTime? _lastupdatedat = DateTime.Now;
        private bool deleteFlag;

        public string Id
        {
            get => id; set
            {
                if (id == value) return;
                id = value;
                OnPropertyChanged(nameof(id));
            }
        }
        public string BatchNo
        {
            get => batchNo; set
            {
                if (batchNo == value) return;
                batchNo = value;
                OnPropertyChanged(nameof(batchNo));
            }
        }
        public string Name
        {
            get => name; set
            {
                if (name == value) return;
                name = value;
                OnPropertyChanged(nameof(name));
            }
        }
        public string BirthDate
        {
            get => birthDate; set
            {
                if (birthDate == value) return;
                birthDate = value;
                OnPropertyChanged(nameof(birthDate));
            }
        }
        public string Gender
        {
            get => gender; set
            {
                if (gender == value) return;
                gender = value;
                OnPropertyChanged(nameof(gender));
            }
        }
        public string RegistrationProvince
        {
            get => registrationProvince; set
            {
                if (registrationProvince == value) return;
                registrationProvince = value;
                OnPropertyChanged(nameof(registrationProvince));
            }
        }
        public string RegistrationCity
        {
            get => registrationCity; set
            {
                if (registrationCity == value) return;
                registrationCity = value;
                OnPropertyChanged(nameof(registrationCity));
            }
        }
        public string RegistrationAddress
        {
            get => registrationAddress; set
            {
                if (registrationAddress == value) return;
                registrationAddress = value;
                OnPropertyChanged(nameof(registrationAddress));
            }
        }
        public string CurrentResidenceProvince
        {
            get => currentResidenceProvince; set
            {
                if (currentResidenceProvince == value) return;
                currentResidenceProvince = value;
                OnPropertyChanged(nameof(currentResidenceProvince));
            }
        }
        public string CurrentResidenceCity
        {
            get => currentResidenceCity; set
            {
                if (currentResidenceCity == value) return;
                currentResidenceCity = value;
                OnPropertyChanged(nameof(currentResidenceCity));
            }
        }
        public string CurrentResidenceAddress
        {
            get => currentResidenceAddress; set
            {
                if (currentResidenceAddress == value) return;
                currentResidenceAddress = value;
                OnPropertyChanged(nameof(currentResidenceAddress));
            }
        }
        public string IDType
        {
            get => iDType; set
            {
                if (iDType == value) return;
                iDType = value;
                OnPropertyChanged(nameof(iDType));
            }
        }
        public string IDNumber
        {
            get => iDNumber; set
            {
                if (iDNumber == value) return;
                iDNumber = value;
                OnPropertyChanged(nameof(iDNumber));
            }
        }
        public string CardType
        {
            get => cardType; set
            {
                if (cardType == value) return;
                cardType = value;
                OnPropertyChanged(nameof(cardType));
            }
        }

        public string HolderOfCertificateType
        {
            get => holderOfCertificateType; set
            {
                if (holderOfCertificateType == value) return;
                holderOfCertificateType = value;
                OnPropertyChanged(nameof(holderOfCertificateType));
            }
        }
        public string TrafficArea
        {
            get => trafficArea; set
            {
                if (trafficArea == value) return;
                trafficArea = value;
                OnPropertyChanged(nameof(trafficArea));
            }
        }
        public string WorkUnit
        {
            get => workUnit; set
            {
                if (workUnit == value) return;
                workUnit = value;
                OnPropertyChanged(nameof(workUnit));
            }
        }
        public string Telephone
        {
            get => telephone; set
            {
                if (telephone == value) return;
                telephone = value;
                OnPropertyChanged(nameof(telephone));
            }
        }
        public string Remark
        {
            get => remark; set
            {
                if (remark == value) return;
                remark = value;
                OnPropertyChanged(nameof(remark));
            }
        }
        public string UserDefine1
        {
            get => userDefine1; set
            {
                if (userDefine1 == value) return;
                userDefine1 = value;
                OnPropertyChanged(nameof(userDefine1));
            }
        }
        public string UserDefine2
        {
            get => userDefine2; set
            {
                if (userDefine2 == value) return;
                userDefine2 = value;
                OnPropertyChanged(nameof(userDefine2));
            }
        }
        public string UserDefine3
        {
            get => userDefine3; set
            {
                if (userDefine3 == value) return;
                userDefine3 = value;
                OnPropertyChanged(nameof(userDefine3));
            }
        }
        public string UserDefine4
        {
            get => userDefine4; set
            {
                if (userDefine4 == value) return;
                userDefine4 = value;
                OnPropertyChanged(nameof(userDefine4));
            }
        }
        public string UserDefine5
        {
            get => userDefine5; set
            {
                if (userDefine5 == value) return;
                userDefine5 = value;
                OnPropertyChanged(nameof(userDefine5));
            }
        }
        public string UserDefine6
        {
            get => userDefine6; set
            {
                if (userDefine6 == value) return;
                userDefine6 = value;
                OnPropertyChanged(nameof(userDefine6));
            }
        }
        public string UserDefine7
        {
            get => userDefine7; set
            {
                if (userDefine7 == value) return;
                userDefine7 = value;
                OnPropertyChanged(nameof(userDefine7));
            }
        }
        public string UserDefine8
        {
            get => userDefine8; set
            {
                if (userDefine8 == value) return;
                userDefine8 = value;
                OnPropertyChanged(nameof(userDefine8));
            }
        }
        public string UserDefine9
        {
            get => userDefine9; set
            {
                if (userDefine9 == value) return;
                userDefine9 = value;
                OnPropertyChanged(nameof(userDefine9));
            }
        }
        public string UserDefine10
        {
            get => userDefine10; set
            {
                if (userDefine10 == value) return;
                userDefine10 = value;
                OnPropertyChanged(nameof(userDefine10));
            }
        }
        public DomesticAttendeeForTable[] ChildTypes
        {
            get => childTypes; set
            {
                if (childTypes == value) return;
                childTypes = value;
                OnPropertyChanged(nameof(childTypes));
            }
        }
        public bool DeleteFlag
        {
            get => deleteFlag; set
            {
                if (deleteFlag == value) return;
                deleteFlag = value;
                OnPropertyChanged(nameof(deleteFlag));
            }
        }
        public string LastUpdatedBy
        {
            get => _lastupdatedby; set
            {
                if (_lastupdatedby == value) return;
                _lastupdatedby = value;
                OnPropertyChanged(nameof(_lastupdatedby));
            }
        }

        public DateTime CreatedAt
        {
            get => (DateTime)_createdat; set
            {
                if (_createdat == value) return;
                _createdat = value;
                OnPropertyChanged(nameof(_createdat));
            }
        }

        public DateTime LastUpdatedAt
        {
            get => (DateTime)_lastupdatedat; set
            {
                if (_lastupdatedat == value) return;
                _lastupdatedat = value;
                OnPropertyChanged(nameof(_lastupdatedat));
            }
        }
        public string CreatedBy
        {
            get => createdBy; set
            {
                if (createdBy == value) return;
                createdBy = value;
                OnPropertyChanged(nameof(createdBy));
            }
        }
        public CellLink[] CellLinks
        {
            get => cellLinks; set
            {
                if (cellLinks == value) return;
                cellLinks = value;
                OnPropertyChanged(nameof(cellLinks));
            }
        }
    }
}
